<?php
class configuration {
	private $conexion;
	private $bd;

	//Datos registro de pago
	public $data = array();
	private $id;
	//establecer conexion a la base
	function __construct($id) {
		$this->establecerConexion();
		$this->id = $id;
	}
	private function establecerConexion() {
		$arr_localhost = array('localhost', '127.0.0.1');
		if (!in_array($_SERVER['HTTP_HOST'],$arr_localhost)) {
			$this->conectarServicio(STG_HOST,STG_USER,STG_PASSWORD);
			$this->seleccionarBD(STG_DB);
		} else {
			$this->conectarServicio(DEV_HOST,DEV_USER,DEV_PASSWORD);
			$this->seleccionarBD(DEV_DB);
		}
	}
	
	private function seleccionarBD($BD) {
		try {
			$this->bd = mysql_select_db($BD,$this->conexion);
			if (1000 < mysql_errno() && mysql_errno() < 2056) throw new Exception("Error al intentar seleccionar la base de datos(".$BD.").<br>");
		} catch (Exception $e) {
			echo mysql_errno(). " : " .mysql_error();
			exit();
		}
	}
	private function conectarServicio($host,$user,$pwd) {
		try {
			$this->conexion = mysql_connect($host,$user,$pwd);
			if (1000 < mysql_errno() && mysql_errno() < 2056) throw new Exception("Error al intentar conectar base de datos en el ".$_SERVER['HTTP_HOST']."<br>");
		} catch (Exception $e) {
			echo mysql_errno(). " : " .mysql_error();
			exit();
		}
	}
	//setters y getters de los datos del profesor
	public function setNombre($nombre) {
		if (!empty($nombre)) { $this->data['nombre'] = $nombre; return 1; }
		else {
			$this->data['nombre'] = '';
			return 0;
		}
	}
	public function getNombre() {
		return $this->data['nombre'];
	}
	/*---------------------------------------------------------------------------------------*/
	public function setApellido($apellido) {
		if (!empty($apellido)) { $this->data['apellido'] = $apellido; return 1; }
		else {
			$this->data['apellido'] = '';
			return 0;
		}
	}
	public function getApellido() {
		return $this->data['apellido'];
	}
	/*---------------------------------------------------------------------------------------*/
	public function setEmail($email) {
		$pattern = '/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$/';
		if ((!empty($email)) && (preg_match($pattern, $email))) { $this->data['email'] = $email; return 1; }
		else {
			$this->data['email'] = '';
			return 0;
		}
	}
	public function getEmail() {
		return $this->data['email'];
	}
	/*---------------------------------------------------------------------------------------*/
	public function setClave($clave = null) {
		if (empty($clave)) { /*generar clave*/ }
		else { /*encriptar clave*/ }
	}
	private function generarClave() {} 
	public function getClave() { //devuelve clase encriptada.
		return $this->data['clave'];
	}
	/*---------------------------------------------------------------------------------------*/
	public function setNickname($nick) {
		$this->data['nickname'] = $nick;
		return 1;
	}
	public function getNickname() {
		return $this->data['nickname'];
	}
	/*---------------------------------------------------------------------------------------*/
	public function setFechaNacimiento($fecha) {
		$pattern = '%^(((([012]?[1-8]|[01]?9|[12]0)[-/](0?[1-9]|1[0-2]))|((29|30)[-/](0?[13-9]|1[0-2]))|31[-/](0?[13578]|1[02]))[-/](0*[1-9][0-9]*|0[0-9]))|29[-/]0?2[-/](([0-9]*([02468][48]|[13579][26]|[2468]0)(00)*)|0*[48]|00)$%';
		if ((!empty($fecha)) && (preg_match($pattern, $fecha))) { $this->data['fecha_nacimiento'] = $fecha; return 1; }
		else return 0;
	}
	public function getFechaNacimiento() {
		return $this->data['fecha_nacimiento'];
	}
	/*---------------------------------------------------------------------------------------*/
	public function setEstado($estado) {
		$this->data['estado'] = (int)$estado;
		return 1;
	}
	public function getEstado() {
		return $this->data['estado'];
	}
	/*---------------------------------------------------------------------------------------*/
	/*
	setAvatar tiene sentido solo para rellenar la base de datos.
	Cortar la imagen en otras dimensiones y subirla al servidor podra encontrarse en la extension del modelo, en la accion; en cooperacion con el controlador.
	*/
	public function setAvatar($avatar = null) { //Hay avatar por defecto en caso de null.
		$this->data['avatar'] = $avatar;
		return 1;
	}
	public function getAvatar() { //viene la URL de la imagen
		return $this->data['avatar'];
	}
	/*---------------------------------------------------------------------------------------*/
	public function setIntereses($intereses = null) {
		$this->data['intereses'] = $intereses;
		return 1;
	}
	public function getIntereses() {
		return $this->data['intereses'];
	}
	/*---------------------------------------------------------------------------------------*/
	public function setBiografia($biografia = null) {
		$this->data['biografia'] = $biografia;
		return 1;
	}
	public function getBiografia() {
		return $this->data['biografia'];
	}
	/*---------------------------------------------------------------------------------------*/
	public function setCelular($celular) {
		if ($celular == 0) $this->data['celular'] = '';
		else $this->data['celular'] = $celular;
		return 1;
	}
	public function getCelular() {
		return $this->data['celular'];
	}
	/*---------------------------------------------------------------------------------------*/
	public function setTelefono($telefono) {
		if ($telefono == 0) $this->data['telefono'] = '';
		else $this->data['telefono'] = (int)$telefono;
		return 1;
	}
	public function getTelefono() {
		return $this->data['telefono'];
	}
	/*---------------------------------------------------------------------------------------*/
	public function setDomicilio($domicilio = null) {
		$this->data['domicilio'] = $domicilio;
		return 1;
	}
	public function getDomicilio() {
		return $this->data['domicilio'];
	}
	/*---------------------------------------------------------------------------------------*/
	public function setBarrio($barrio = null) {
		$this->data['barrio'] = $barrio;
		return 1;
	}
	public function getBarrio() {
		return $this->data['barrio'];
	}
	/*---------------------------------------------------------------------------------------*/
	public function setCiudad($ciudad = null) {
		$this->data['ciudad'] = $ciudad;
		return 1;
	}
	public function getCiudad() {
		return $this->data['ciudad'];
	}
	/*---------------------------------------------------------------------------------------*/
	public function setProvincia($provincia = null) {
		$this->data['provincia'] = $provincia;
		return 1;
	}
	public function getProvincia() {
		return $this->data['provincia'];
	}
	/*---------------------------------------------------------------------------------------*/
	public function setPais($pais = null) {
		$this->data['pais'] = $pais;
		return 1;
	}
	public function getPais() {
		return $this->data['pais'];
	}
	/*---------------------------------------------------------------------------------------*/
	public function setIdioma($idioma) {
		if (!empty($idioma)) { $this->data['idioma'] = $idioma; return 1; }
		else {
			$this->data['idioma'] = '';
			return 0;
		}
	}
	public function getIdioma() {
		return $this->data['idioma'];
	}
	/*---------------------------------------------------------------------------------------*/
	//Debo corregirlo y hacerlo con una expresion regular
	public function setHusoHorario($huso_horario) {
		if ($huso_horario == 0) { $this->data['huso_horario'] = ''; return 0; }
		else { $this->data['huso_horario'] = $huso_horario; return 1; }
	}
	public function getHusoHorario() {
		return $this->data['huso_horario'];
	}
	/*---------------------------------------------------------------------------------------*/
	public function setPoliticasPago($politicas_pago = null) {
		$this->data['politicas_pago'] = $politicas_pago;
		return 1;
	}
	public function getPoliticasPago() {
		return $this->data['politicas_pago'];
	}
	/*---------------------------------------------------------------------------------------*/
	public function setMediosPago($medios_pago = null) {
		$this->data['medios_pago'] = $medios_pago;
		return 1;
	}
	public function getMediosPago() {
		return $this->data['medios_pago'];
	}
	/*---------------------------------------------------------------------------------------*/
	public function setServer($url_server = null) {
		$this->data['url_server'] = $url_server;
		return 1;
	}
	public function getId() {
		return $this->id;
	}
}
?>